63 research outputs found

    Especificación de Componentes MDA para Patrones de Diseño

    Get PDF
    The Model Driven Architecture (MDA) promotes the use of models and model transformations for developing software systems. The idea behind MDA is to manage the evolution from Platform Independent Models to Platform Specific Models that can be used to generate executable components and applications. The concepts of metamodels and metamodel-based model transformations are critical in MDA. In this paper, we analyze how to specify reusable components for design patterns in a way that fit MDA very closely. To define families of reusable components we describe a “megamodel” that refers to metamodels and model transformations organized into an architectural framework. We propose an integration of formal and semiformal specifications to specify MDA mega-components. Our formalization focuses on interoperability of formal languages in Model Driven Development (MDD).La Arquitectura Model Driven (MDA) promueve el uso de modelos y transformaciones de modelos para desarrollar sistemas de software. La idea central de MDA es manejar la evolución de modelos independientes de la plataforma a modelos específicos a la plataforma que pueden ser usados para generar componentes ejecutables y aplicaciones. En el contexto MDA los metamodelos y las transformaciones basadas en metamodelos son esenciales. En este artículo describimos como especificar componentes para patrones de diseño alineados a MDA. Para definir familias de componentes reusables presentamos un “megamodelo” que integra metamodelos y refinamientos organizados en un framework arquitectural. Proponemos integrar especificaciones semiformales y formales para especificar mega-componentes MDA. Nuestra formalización se centra en la interoperabilidad de lenguajes formales en el desarrollo Model Driven (MDD)

    Recovering Sequence Diagrams from Object-oriented Code

    Get PDF
    Software modernization is a current research area in the software industry intended to transform an existing software system to a new one satisfying new demands. The initiative Architecture-Driven Modernization (ADM) helps software developers in tackling reverse engineering, software evolution and, software modernization in general. To support modernization problems, the ADM Task Force has defined a set of metamodels such as KDM (Knowledge Discovery Metamodel), being the Eclipse-MDT MoDisco project the official support for software modernization. We propose the application of ADM principles to provide relevant model-based views on legacy systems. We describe a framework to reverse engineering models from object-oriented code. In this context, we show how to recover UML sequence diagrams from Java code. We validate our approach by using ADM standards and MoDisco platform. Our research can be considered a contribution to the MoDisco community; MoDisco does not support reverse engineering of sequence diagrams and, on the other hand, the MoDisco KDM Discover was used and enriched to obtain the required information for recovering interaction diagrams

    Unraveling the origin of the cultivar ‘Bonarda’ in Argentina using microsatellite molecular markers

    Get PDF
    ‘Bonarda’ es una variedad de vid que en Argentina se cultiva principalmente en las provincias de Mendoza y San Juan, representa el segundo cepaje tinto en superficie nacional cultivada y es considerada con gran potencial para la elaboración de vinos tintos de alta calidad. Existe incertidumbre respecto a su origen en el país. La descripción ampelográfica de la ‘Bonarda’ cultivada en Argentina remarca gran nivel de similitud con la variedad italiana ‘Bonarda Piemontesa’ y con la variedad francesa ‘Corbeau’. En un trabajo previo, basado en el uso de marcadores moleculares, se demostró que ‘Bonarda’ se diferencia de ‘Bonarda Piamontesa’ y es idéntica a ‘Corbeau’. El objetivo de este trabajo fue confirmar la identidad de esta variedad empleando un gran número de loci microsatélites de tal manera de cubrir -en lo posible- la mayor parte del genoma. Se analizaron 17 accesiones de ‘Bonardas’ procedentes de distintos puntos geográficos de las provincias de Mendoza y San Juan, y de la variedad francesa ‘Corbeau’. Para las reacciones de PCR se usaron 13 loci microsatélites. Todas las accesiones de ‘Bonarda’ fueron idénticas entre sí e idénticas a la variedad francesa Corbeau, por lo que se concluye que se trata de la misma variedad. Se propone que la variedad ‘Bonarda’ cultivada en Mendoza y San Juan sea denominada ‘Bonarda-Argentina’, para diferenciarla de las italianas, pero a sabiendas, con un alto nivel de confianza, que corresponde a la variedad noble francesa ‘Corbeau’.'Bonarda' is the second most cultivated red variety in Argentina, mainly in the provinces of Mendoza and San Juan. In the past few years it has been valued for its great potential for the production of high quality wines. The origin of this variety was uncertain. The ampelographic description of the Argentine 'Bonarda' shows high level of similarity to the Italian variety 'Bonarda Piemontese,' and the French variety 'Corbeau'. However, recent work using molecular markers has shown that 'Bonarda' differs from ‘Bonarda Piedmontese’ and is identical to 'Corbeau'. The aim of this study was to confirm the identity of this variety using a larger number of microsatellite loci in such a way to cover, if possible, the entire genome. We analyzed 17 accessions of 'Bonarda' from the provinces of Mendoza and San Juan, Argentina, and the French variety 'Corbeau' with 13 microsatellite loci. All accessions of 'Bonarda' were identical to each other and to the French variety ‘Corbeau’, confirming that it is the same variety. It is proposed that the variety 'Bonarda' grown in Mendoza and San Juan is called 'Bonarda from Argentina' to distinguish it from the Italian Bonarda, but knowing, with a high confidence level, that corresponds to the noble French variety 'Corbeau'.Fil: De Rosas, María Inés. Universidad Nacional de Cuyo. Facultad de Ciencias Agrarias. Departamento de Ciencias BiológicasFil: Martínez, Liliana. Universidad Nacional de Cuyo. Facultad de Ciencias Agrarias. Departamento de Ciencias Biológica

    Componentes MDA para patrones de diseño

    Get PDF
    La arquitectura Model-Driven (Model-Driven Architecture o MDA) es un framework para el desarrollo de software definido por el Object Management Group (OMG) (MDA, 2007). Su propuesta es elevar el nivel de abstracción en el que se desarrollan sistemas complejos separando la especificación de la funcionalidad de un sistema de su implementación en una plataforma tecnológica específica. MDA promueve el uso de modelos y transformaciones de modelos para el desarrollo de sistemas de software. El proceso de desarrollo MDA distingue cuatro clases de modelos: - Modelo independiente de la computación (Computation Independent Model o CIM): describe los requerimientos del sistema y los procesos de negocio que debe resolver sin tener en cuenta aspectos computacionales. - Modelo independiente de la plataforma (Platform Independent Model o PIM): es un modelo computacional independiente de las características específicas a una plataforma de desarrollo, como por ejemplo .NET, J2EE o relacional. - Modelo específico a la plataforma (Platform Specific Model o PSM): describe un sistema en términos de una plataforma de implementación particular. - Modelo específico a la implementación (Implementation Specific Model o ISM): se refiere a componentes y aplicaciones que usan lenguajes de programación específicos. Los elementos esenciales de MDA son los modelos, los metamodelos y las transformaciones. Un modelo es una descripción o especificación de un sistema y su ambiente para algún cierto propósito. Dentro de MDA un modelo debe estar escrito en un lenguaje de forma tal de ser interpretado por una computadora. Dentro del contexto de MDA, los metamodelos son expresados usando MOF (Meta Object Facility) que define una forma común de capturar todos los estándares y construcciones de intercambio (MOF, 2006). Los metamodelos MOF se basan en los conceptos de entidades, interrelaciones y sistemas y se expresan como una combinación de diagramas de clases UML y restricciones OCL (UML-Infrastructure, 2007; UML-Superstructure, 2007; OCL, 2006). La transformación de modelo a modelo es el proceso de convertir un modelo en otro modelo del mismo sistema. Para expresar las transformaciones, OMG está trabajando en la definición del QVT (Query\View\Transformation) para expresar transformaciones como una extensión de MOF (QVT, 2007). El proceso de desarrollo Model-Driven (MDD) en el contexto de MDA es llevado a cabo como una secuencia de transformaciones de modelos que incluye al menos los siguientes pasos: construir un PIM, transformar el PIM en uno o más PSMs, y construir componentes ejecutables y aplicaciones directamente a partir de un PSM. Un alto grado de automatización de PIMs a PSMs, y de PSMs a ISMs es esencial en el proceso de desarrollo de MDA. Las herramientas que llevan a cabo la automatización se basan en la definición de las transformaciones, las cuales describen como generar un modelo a partir de otro. El éxito de esta propuesta depende de la definición de las transformaciones entre modelos y de librerías de componentes que tengan un impacto significativo sobre las herramientas que proveen soporte a MDA. Entre los posibles componentes MDA se pensó en definir componentes para patrones de diseño (Gamma y otros, 1995) dada su amplia difusión, aceptación y uso, debido a que describen soluciones a problemas de diseño recurrentes. Arnaut (2004) analiza los patrones de diseño de Gamma y otros (1995) para identificar cuales de ellos pueden ser transformados en componentes reusables en una librería Eiffel. Su hipótesis de trabajo es que “los patrones de diseño son buenos, pero los componentes son mejores”. En este caso en particular la reusabilidad está dada en términos de código, pero nos inspiró a pensar en los patrones de diseño en términos de componentes MDA.Facultad de Informátic

    Una integración de patrones de diseño en procesos de ingeniería forward de modelos estáticos UML

    Get PDF
    Los patrones de diseño describen soluciones a problemas de diseño recurrentes. Si bien no hay consenso sobre la forma de integrar patrones de diseño en el desarrollo de software (usando por ejemplo herramientas o lenguajes), si lo hay en cuanto a que la tarea debería ser automatizada o al menos asistida. La experiencia industrial (Beck, 1996) indica que los patrones de diseño reducen los tiempos de desarrollo, facilitan la comunicación, pero su aplicación manual es tediosa, propensa a errores y a pérdida de traceability. La importancia del diseño de software a partir de patrones de diseño es ampliamente reconocida. Varios IDEs (Integrated Development Environments) y ambientes de modelado de software basados en UML (OMG, 2004) han comenzado a introducir soporte para patrones de diseño aunque las herramientas comerciales existentes proveen limitada asistencia para la generación de código a partir de los mismos. La mayoría simplemente asiste en un proceso “cortar y pegar”, en el cual el diseñador selecciona un patrón y obtiene una pieza de código en el lenguaje apropiado. El programador necesita luego ajustar el código obtenido a la implementación (Peckham y Lloyd, 2003). En general, las técnicas empleadas no son independientes del lenguaje y son incapaces de generar código en más de un lenguaje. Estas propuestas asumen que los patrones de diseño involucran clases dedicadas a su rol como el de colaborador dentro de un patrón de diseño particular. En general esto no es verdad, los patrones raramente existen en forma aislada. Con frecuencia un colaborador en un patrón juega un rol diferente en otro. La definición de patrón pone el énfasis en esto: un patrón es "una solución a un problema en un contexto particular" (Gamma y otros,1995). Es más, un patrón es implementado generando no sólo nuevas clases y métodos, sino adaptando el contexto existente, es decir, las construcciones de código preexistentes, a los roles que asumen en el nuevo patrón aplicado (Eden y otros, 1997)

    Especificación de Componentes MDA para Patrones de Diseño

    Get PDF
    La Arquitectura Model Driven (MDA) promueve el uso de modelos y transformaciones de modelos para desarrollar sistemas de software. La idea central de MDA es manejar la evolución de modelos independientes de la plataforma a modelos específicos a la plataforma que pueden ser usados para generar componentes ejecutables y aplicaciones. En el contexto MDA los metamodelos y las transformaciones basadas en metamodelos son esenciales. En este artículo describimos como especificar componentes para patrones de diseño alineados a MDA. Para definir familias de componentes reusables presentamos un “megamodelo” que integra metamodelos y refinamientos organizados en un framework arquitectural. Proponemos integrar especificaciones semiformales y formales para especificar mega-componentes MDA. Nuestra formalización se centra en la interoperabilidad de lenguajes formales en el desarrollo Model Driven (MDD).The Model Driven Architecture (MDA) promotes the use of models and model transformations for developing software systems. The idea behind MDA is to manage the evolution from Platform Independent Models to Platform Specific Models that can be used to generate executable components and applications. The concepts of metamodels and metamodel-based model transformations are critical in MDA. In this paper, we analyze how to specify reusable components for design patterns in a way that fit MDA very closely. To define families of reusable components we describe a “megamodel” that refers to metamodels and model transformations organized into an architectural framework. We propose an integration of formal and semiformal specifications to specify MDA mega-components. Our formalization focuses on interoperability of formal languages in Model Driven Development (MDD).Workshop de Ingeniería de Software y Bases de Datos (WISBD)Red de Universidades con Carreras en Informática (RedUNCI

    Especificación de Componentes MDA para Patrones de Diseño

    Get PDF
    La Arquitectura Model Driven (MDA) promueve el uso de modelos y transformaciones de modelos para desarrollar sistemas de software. La idea central de MDA es manejar la evolución de modelos independientes de la plataforma a modelos específicos a la plataforma que pueden ser usados para generar componentes ejecutables y aplicaciones. En el contexto MDA los metamodelos y las transformaciones basadas en metamodelos son esenciales. En este artículo describimos como especificar componentes para patrones de diseño alineados a MDA. Para definir familias de componentes reusables presentamos un “megamodelo” que integra metamodelos y refinamientos organizados en un framework arquitectural. Proponemos integrar especificaciones semiformales y formales para especificar mega-componentes MDA. Nuestra formalización se centra en la interoperabilidad de lenguajes formales en el desarrollo Model Driven (MDD).The Model Driven Architecture (MDA) promotes the use of models and model transformations for developing software systems. The idea behind MDA is to manage the evolution from Platform Independent Models to Platform Specific Models that can be used to generate executable components and applications. The concepts of metamodels and metamodel-based model transformations are critical in MDA. In this paper, we analyze how to specify reusable components for design patterns in a way that fit MDA very closely. To define families of reusable components we describe a “megamodel” that refers to metamodels and model transformations organized into an architectural framework. We propose an integration of formal and semiformal specifications to specify MDA mega-components. Our formalization focuses on interoperability of formal languages in Model Driven Development (MDD).Workshop de Ingeniería de Software y Bases de Datos (WISBD)Red de Universidades con Carreras en Informática (RedUNCI

    Una integración de patrones de diseño en procesos de ingeniería forward de modelos estáticos UML

    Get PDF
    Los patrones de diseño describen soluciones a problemas de diseño recurrentes. Si bien no hay consenso sobre la forma de integrar patrones de diseño en el desarrollo de software (usando por ejemplo herramientas o lenguajes), si lo hay en cuanto a que la tarea debería ser automatizada o al menos asistida. La experiencia industrial (Beck, 1996) indica que los patrones de diseño reducen los tiempos de desarrollo, facilitan la comunicación, pero su aplicación manual es tediosa, propensa a errores y a pérdida de traceability. La importancia del diseño de software a partir de patrones de diseño es ampliamente reconocida. Varios IDEs (Integrated Development Environments) y ambientes de modelado de software basados en UML (OMG, 2004) han comenzado a introducir soporte para patrones de diseño aunque las herramientas comerciales existentes proveen limitada asistencia para la generación de código a partir de los mismos. La mayoría simplemente asiste en un proceso “cortar y pegar”, en el cual el diseñador selecciona un patrón y obtiene una pieza de código en el lenguaje apropiado. El programador necesita luego ajustar el código obtenido a la implementación (Peckham y Lloyd, 2003). En general, las técnicas empleadas no son independientes del lenguaje y son incapaces de generar código en más de un lenguaje. Estas propuestas asumen que los patrones de diseño involucran clases dedicadas a su rol como el de colaborador dentro de un patrón de diseño particular. En general esto no es verdad, los patrones raramente existen en forma aislada. Con frecuencia un colaborador en un patrón juega un rol diferente en otro. La definición de patrón pone el énfasis en esto: un patrón es "una solución a un problema en un contexto particular" (Gamma y otros,1995). Es más, un patrón es implementado generando no sólo nuevas clases y métodos, sino adaptando el contexto existente, es decir, las construcciones de código preexistentes, a los roles que asumen en el nuevo patrón aplicado (Eden y otros, 1997)

    Migrating C/C++ Software to Mobile Platforms in the ADM Context

    Get PDF
    Software technology is constantly evolving and therefore the development of applications requires adapting software components and applications in order to be aligned to new paradigms such as Pervasive Computing, Cloud Computing and Internet of Things. In particular, many desktop software components need to be migrated to mobile technologies. This migration faces many challenges due to the proliferation of different mobile platforms. Developers usually make applications tailored for each type of device expending time and effort. As a result, new programming languages are emerging to integrate the native behaviors of the different platforms targeted in development projects. In this direction, the Haxe language allows writing mobile applications that target all major mobile platforms. Novel technical frameworks for information integration and tool interoperability such as Architecture-Driven Modernization (ADM) proposed by the Object Management Group (OMG) can help to manage a huge diversity of mobile technologies. The Architecture-Driven Modernization Task Force (ADMTF) was formed to create specifications and promote industry consensus on the modernization of existing applications. In this work, we propose a migration process from C/C++ software to different mobile platforms that integrates ADM standards with Haxe. We exemplify the different steps of the process with a simple case study, the migration of “the Set of Mandelbrot” C++ application. The proposal was validated in Eclipse Modeling Framework considering that some of its tools and run-time environments are aligned with ADM standards

    TRACEM - Towards a Standard Metamodel for Execution Traces in Model-Driven Reverse Engineering

    Get PDF
    Reverse engineering is a crucial stage in the software modernization process. The current techniques available in existing CASE tools provide forward engineering and limited facilities for reverse engineering, dynamic analysis in particular. The Architecture-Driven Modernization initiative has defined standards to support the modernization process in the model-driven engineering (MDE) context. Standardization increases interoperability between different tools enabling a new generation of solutions to benefit the whole industry and encourage collaboration among complementary vendors. In this paper, we present TRACEM, a metamodel to represent trace information under a standard representation. This metamodel complements a MDE framework for software modernization that aims to integrate static and dynamic analysis techniques during the reverse engineering process. This paper includes a case study that exemplifies how dynamic information combined with static information allows improving the whole reverse engineering process.XIX Workshop Ingeniería de Software (WIS)Red de Universidades con Carreras en Informátic
    corecore